Operatory


Operator jest to znak lub grupa znak≤w do wykonywania operacji na zmiennej lub zmiennych. Dok│adniejsze informakcje uzyskasz w 14 lekcji kursu. W poni┐szej tabelce zamieszczam wykaz wszystkich operator≤w ze specyfikacji JavaScript 5.5, jednak, wiem z do╢wiadczenia, ┐e wiΩkszo╢ci z nich nigdy nie u┐yjecie, ale a n≤┐-widelec kto╢ bΩdzie potrzebowa│:

aRYTMETYCZNE

operator

opis

wersja JS

przyk│ad

wynik

+

1. dodawanie dw≤ch liczb
2. │▒czenie dw≤ch │a±cuch≤w tekstowych
3. │▒czenie │a±cucha i warto╢ci liczbowej

1

x = 3 + 5.2
s = "Java" + "Script"
t = 5 + "KB"

8.2
"JavaScript"
"5KB"

-

1. odejmuje dwie liczby od siebie
2. zmienia warto╢µ liczbow▒ na przeciwn▒
3. │a±cuchy tekstowe s▒ zmieniane na liczby (je╢li mo┐liwe) i odejmowane
4. obiekty s▒ zamieniane na │a±cuchy, a te na liczby i odejmowane
5. warto╢ci typu boolean s▒ zamieniane na liczby (true=1, false=0)
6. je╢li zmienna jest undefined wyst▒pi b│▒d

1

x = 0.99 - 2
x = - x
x = "5" - "3"
x = document - window
x = false - true

x = -1.01
1.01
2
b│▒d
-1

*

mno┐y dwie liczby przez siebie

1

x = 1.2 * 3

3.6

/

dzieli dwie liczby przez siebie

1

x = 20 / 4

5

%

zwraca resztΩ z dzielenia dw≤ch zaokr▒glonych liczb

1

x = 22.8 % 4

3

bITOWE

<<

przesuniΩcie bitowe o zadan▒ pozycjΩ w lewo

1

x = 23 << 2

92, czyli 01011100,
bo 23 bitowo
to 00010111

>>

przesuniΩcie bitowe o zadan▒ pozycjΩ w prawo z uwzgl▒dnieniem znaku

1

x = -14 << 2

-4, czyli 11111100,
bo -14 bitowo
to 11110010

>>>

przesuniΩcie bitowe o zadan▒ pozycjΩ w prawo bez uwzgl▒dnienia znaku

1

x = -14 << 2

1073741820, czyli
00111111 11111111
11111111 11111100,
bo -14 bitowo to
11111111 11111111
11111111 11110010

|

bitowe "lub"; je┐eli na danej pozycji binarnej w przynajmniej jednym wyra┐eniu wystΩpuje 1 to wynikiem jest 1

1

x = 13 | 6

15, bo
13 : 1101
6 : 0110
15 : 1111

&

bitowe "i"; je┐eli na danej pozycji binarnej w obu na raz wyra┐eniach wystΩpuje 1 to wynikiem jest 1

1

x = 13 & 6

4, bo
13 : 1101
6 : 0110
4 : 0100

~

bitowe "nie"; na wszystkich pozycjach binarnych 0 s▒ zamieniane na 1 i odwrotnie

1

x = ~ 13

2, bo
13 : 1101
2 : 0010

^

bitowe "albo"; je┐eli na danej pozycji binarnej w dok│adnie jednym wyra┐eniu wystΩpuje 1 to wynikiem jest 1

1

x = 13 ^ 6

11, bo
13 : 1101
6 : 0110
11 : 1011

lOGICZNE (pOR╙WNANIA)

>

wiΩksze ni┐

1

x = (13 > 6)

true

<

mniejsze ni┐

1

x = (13 < 6)

false

>=

wiΩksze lub r≤wne ni┐

1

x = (13 >= 13)

true

<=

mniejsze lub r≤wne ni┐

1

x = (13 <= 6)

false

==

r≤wne co do warto╢ci

1

x = (13 == 6)

false

===

r≤wne co do warto╢ci i zgodne co do typu

1

s = 13;
t = "13";
x = (s === t)

false

!=

r≤┐ny od

1

x = (13 != 6)

true

!==

r≤┐ne co do warto╢ci i zgodne co do typu

1

s = "6";
t = "13";
x = (s !== t)

true

!

logiczne przeczenie

1

x = !(13 == 13)

false

&&

logiczne "i"

1

x = ((13 == 13) && (13 != 6))

true

||

logiczne "lub"

1

x = ((13 != 13) || (13 != 6))

true

pRZYPISANIA

=

zwyk│e przypisanie

1

x = 13

13

+=

przypisanie danej zmiennej jej warto╢µ zwiΩkszon▒ o drug▒ liczbΩ

1

x = 13;
x += 6

19

-=

przypisanie danej zmiennej jej warto╢µ zmniejszon▒ o drug▒ liczbΩ

1

x = 13;
x -= 6

7

*=

przypisanie danej zmiennej jej warto╢µ pomno┐on▒ drug▒ liczbΩ

1

x = 13;
x *= 6

78

/=

przypisanie danej zmiennej jej warto╢µ podzielon▒ przez drug▒ liczbΩ

1

x = 12;
x /= 6

2

%=

przypisanie danej zmiennej reszty z dzielenia jej warto╢µi przez drug▒ liczbΩ

1

x = 13;
x %= 6

1

&=

przypisanie danej zmiennej jej warto╢µ por≤wnan▒ bitowo ("i") z drug▒ liczb▒ (warto╢ci▒ boolean)

1

x = true;
x &= true

true

|=

przypisanie danej zmiennej jej warto╢µ por≤wnan▒ bitowo ("lub") z drug▒ liczb▒ (warto╢ci▒ boolean)

1

x = false;
x |= true

true

^=

przypisanie danej zmiennej jej warto╢µ por≤wnan▒ bitowo ("albo") z drug▒ liczb▒ (warto╢ci▒ boolean)

1

x = true;
x ^= true

false

<<=

przypisanie danej zmiennej jej warto╢µ przesuniΩt▒ bitowo w lewo

1

patrz operatory bitowe

patrz operatory bitowe

>>=

przypisanie danej zmiennej jej warto╢µ przesuniΩt▒ bitowo w prawo

1

patrz operatory bitowe

patrz operatory bitowe

>>>=

przypisanie danej zmiennej jej warto╢µ przesuniΩt▒ bitowo w prawo bez uwzglΩdnienia znaku

1

patrz operatory bitowe

patrz operatory bitowe

iNNE

++

inkrementacja (zwiΩkszenie) zmiennej o jeden
1. preinkrementacja - nastΩpuje zwiΩkszenie warto╢ci zanim zmienna zostanie u┐yta
2. postinkrementacja - nastΩpuje zwiΩkszenie warto╢ci po wykorzystaniu zmiennej

1

x = 0; k = 0;
x = k++;
x = ++k;

x = 0; k = 0;
x = 0; k = 1;
x = 2; k = 2;

--

dekrementacja (zmniejszanie) zmiennej o jeden
1. predekrementacja - nastΩpuje zmniejszenie warto╢ci zanim zmienna zostanie u┐yta
2. postdekrementacja - nastΩpuje zmniejszenie warto╢ci po wykorzystaniu zmiennej

1

x = 10; k = 10;
x = k--;
x = --k;

x = 10; k = 10;
x = 10; k = 9;
x = 8; k = 8;

() ? :

po sprawdzeniu warunku w nawiasie je┐eli jest on prawdziwy to zwracana jest warto╢µ pierwsza, w przeciwnym wypadku - warto╢µ druga

1

x = (13 < 6) ? "prawda" : "nieprawda"

"nieprawda"

,

pozwala na wykonanie kilku instrukcji sekwencyjnie

1

for (i=0; i<100; i++, j++)
{ k = i + j; }

w ka┐dym przej╢ciu pΩtli k jest wiΩksze o 2

void

zapobiega zwr≤ceniu warto╢ci przez wyra┐enie

2

x = void (3 + 5)

undefined

new

tworzy nowy obiekt

1

tab = new Array()

 

delete

usuwa w│asno╢µ obiektu lub element z tablicy

3

x = delete samoch≤d.pojemno╢µ_silnika

true

typeof

zwraca w postaci │a±cucha znakowego typ zmiennej ("number", "string", "boolean", "object", "function" i "undefined")

1

x = !(3 != 5)

"boolean"

instanceof

zwraca w postaci boolean, czy dany obiekt jest instancj▒ danej klasy

5

x = obiekt instanceof klasa

true lub false